import java.util.Random;
import java.util.Scanner;//这个就相当于c语言的include 在java里使用输入要导入这个包

public class Test {

    public static void main(String[] args) {
        //练习
        //1.判断一个数是否是素数
//        int n = 19;
//        int i = 2;
//        for (i = 2; i < Math.sqrt(n); i++) {
//            if(n % i == 0) {
//                break;
//            }
//        }
//        //有几种情况 1. 不符合循环条件 是素数  2. 因为遇到break
//        if(i > Math.sqrt(n)) {
//            System.out.println(n + "是素数");
//        }


        //2.求1~100之间的素数
//        for (int j = 1; j <= 100; j++) {
//
//            int i = 0;
//            for (i = 2; i < Math.sqrt(j); i++) {
//                if(j % i == 0) {
//                    break;
//                }
//            }
//            //有几种情况 1. 不符合循环条件 是素数  2. 因为遇到break
//            if(i > Math.sqrt(j)) {
//                System.out.println(j + "是素数");
//            }
//        }

        //3.求1~最大的6位数的自幂数
//        for (int i = 1; i <= 999999; i++) {
//            int count = 0;
//            int tmp = i;
//            //计算i是几位数
//            while(tmp != 0) {
//                tmp /= 10;
//                count++;//i这个数是几位数
//            }
//            tmp = i;
//            int sum = 0;
//            while(tmp != 0) {
//                sum += Math.pow(tmp % 10, count);//+= 直接就类型转换了
//                tmp /= 10;
//            }
//            if(sum == i) {
//                System.out.println(i+"：是自幂数");
//            }
//        }
        //4. 求一个数的二进制序列中有几个1
//        int n = -1;
//        int count = 0;
//        while(n != 0) {
//            n = n & (n-1);
//            count++;
//        }
//        System.out.println(count);

//        int num = -1;
//        int count = 0;
//        for (int i = 0; i < 32; i++) {
//            if( ((num >> i) & 1 ) == 1) {
//                count++;
//            }
//        }
//        System.out.println(count);

        //5.输出1000~2000之间的闰年
//        int year = 0;
//        for (year = 1000; year <= 2000; year++) {
//            if(year % 100 == 0) {
//                if(year % 400 == 0) {
//                    System.out.println(year+":是闰年");
//                }
//            } else {
//                if(year % 4 == 0) {
//                    System.out.println(year+":是闰年");
//                }
//            }
//        }

        //6.输出乘法口诀表
//        int i = 0;
//        for (i = 1; i <= 9; i++) {
//            int j = 0;
//            for (j = 1; j <= i; j++) {
//                System.out.print(" "+i+"*"+j+"="+i*j);
//                if(i == j) {
//                    System.out.print("\n");
//                }
//            }
//        }

        //7.求两个正整数的最大公约数
//        int a = 20;
//        int b = 40;
//        int min = a<b?a:b;
//        while(min != 0) {
//            if(a % min == 0 && b % min == 0) {
//                break;
//            }
//            min--;
//        }
//        if(min != 0) {
//            System.out.println(min+":是最大公约数");
//        }

        //8.把一个数的二进制的奇数位和偶数位分别输出
//        int a = 5;
//        System.out.print("奇数位:");
//        for (int i = 31; i >= 1; i -= 2) {
//            int b = 1 & (a>>i);
//            System.out.print(b+" ");
//        }
//        System.out.print("\n");
//        System.out.print("偶数位:");
//        for (int i = 30; i >= 0; i -= 2) {
//            int b = 1 & (a>>i);
//            System.out.print(b+" ");
//        }
        //9.编写程序数一下 1到 100 的所有整数中出现多少个数字9
//        int count = 0;
//        for (int i = 1; i <= 100; i++) {
//            //个位数是9
//            if(i % 10 == 9) {
//                count++;
//            }
//            //十位数是9
//            if(i / 10 == 9) {
//                count++;
//            }
//
//        }
//        System.out.println("有"+count+"个9");

        //10.输出一个整数的每一位，如：123的每一位是3，2，1
//        int n = 123;
//        while(n != 0) {
//            System.out.print(n % 10);
//            if(n > 10) {
//                System.out.print(",");
//            }
//            n /= 10;
//        }

        //11.编写代码模拟三次密码输入的场景。 最多能输入三次密码，密码正确，提示“登录成功”,
        // 密码错误， 可以重新输 入，最多输入三次。三次均错，则提示退出程序
//        Scanner scan = new Scanner(System.in);
//        System.out.println("请输入密码");
//        int i = 0;
//        for (i = 0; i < 3; i++) {
//
//            String passname = scan.nextLine();
//            if (passname.equals("123456")) {
//                System.out.println("输入正确！");
//                break;
//            } else {
//                System.out.println("密码错误，请重新输入");
//            }
//        }
//        if(i == 3) {
//            System.out.println("次数上限，退出程序");
//        }

        //12.计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值
//        double sum = 0;
//        int flag = 1;
//        for (int i = 1; i <= 100; i++) {
//            sum += flag*(1.0/i);
//            flag = -flag;
//        }
//        System.out.println(sum);

        //13.描述
        //KiKi学习了循环，BoBo老师给他出了一系列打印图案的练习，该任务是打印用“*”组成的X形图案。
        //输入描述：
        //多组输入，一个整数（2~20），表示输出的行数，也表示组成“X”的反斜线和正斜线的长度。
        //输出描述：
        //针对每行输入，输出用“*”组成的X形图案。

        Scanner in = new Scanner(System.in);

        while (in.hasNextInt()) {
            int n = in.nextInt();
            int i = 0;
            for(i=0; i<n; i++){
                int j = 0;
                for(j=0; j<n; j++){
                    if(i==j){
                        System.out.print("*");
                    } else if(i+j == n-1) {
                        System.out.print("*");
                    } else {
                        System.out.print(" ");
                    }
                }
                System.out.print("\n");
            }
        }

    }
    public static void main5(String[] args) {
        //猜数字游戏
        Scanner scan = new Scanner(System.in);//用输入这个功能的必备格式
        Random random = new Random();//生成随机数的必备格式
        int randNum = random.nextInt(100);//生成0~100之间的数字 包含0 不包含100
        //如果我想生成50~100之间的随机数  那么： random.nextInt(50) -- [0,50)+50 --> [50,100)
        while(true) {
            System.out.println("请输入你要猜的数字");
            int num = scan.nextInt();//输入一个数 放入num里
            if(num < randNum){
                System.out.println("猜小了");
            } else if(num == randNum) {
                System.out.println("猜对了");
                System.out.println("退出程序");
                break;
            } else {
                System.out.println("猜大了");

            }
        }

    }
    public static void main4(String[] args) {
        Scanner scan = new Scanner(System.in);
        //多组输入 int类型的数据   hasNextDouble  多组输入double类型的数据  hasNextLine 多组输入字符串  结束用ctrl+d
        while(scan.hasNextInt()) {
            int age = scan.nextInt();
            System.out.println("年龄："+age);
        }

    }
    public static void main3(String[] args) {
        //输入和输出
        //输入
        //导入包  类似于c的include
        //使用输入的格式
        Scanner scan = new Scanner(System.in);//scan 是自己创建的 可以自己来起
        System.out.println("输入一个整数");
        int age = scan.nextInt();//读入一个int类型的整数
        System.out.println("年龄："+age);

        scan.nextLine();//读取回车 不然上面输入的整数加回车 下面会读取回车 不会让你输入 然后就会直接跳到第三个输入一个小数
                        //因为下面输入一行是可以接收回车的 而输入整数 小数是不能接收回车的  这就相当于c语言的输入缓冲区

        System.out.println("请输入你的姓名");//提示输入 可有可无  我们自己设计的 方便得知输入什么
        String name = scan.nextLine();//读入一行  姓名是字符串 用字符串来接收
        System.out.println("姓名："+name);//拼接
        //next 是遇到空格结束读取  nextLine读入一行

        System.out.println("输入一个小数");
        float fl = scan.nextFloat();//读入一个int类型的整数
        System.out.println("工资："+fl);
        scan.close();//认为scan是一个资源 相当于文件 打开了就要关闭
        //输出
//        System.out.println("hello");//输出且换行
//        System.out.print("hello"); //不换行输出
//        System.out.printf("%d\n", 10);//c语言的输出法


    }
    public static void main2(String[] args) {

        //循环结构
        //do...while 至少执行一次
//        int a = 0;
//        do {
//            System.out.println(a);
//        } while(a != 0);

        //for循环
//        int sum = 0;
//        for (int i = 1; i <= 100; i++) {
//            sum += i;
//        }
//        System.out.println(sum);
        //计算1~5的阶乘的和
//        int sum = 0;
//        for (int j = 1; j <= 5; j++) {
//
//            int ret = 1;
//            for (int i = 1; i <= j; i++) {
//                ret *= i;
//            }
//            sum += ret;
//        }
//        System.out.println(sum);


        //while(布尔表达式)
        //用continue 求100~200之间既能被3整除 又能被4整除的代码
//        int i = 100;
//        while(i <= 200) {
//            if(i % 12 != 0) {
//                i++;
//                continue;
//            }
//            System.out.println(i);
//            i++;
//        }

        //continue 跳过这次循环后面的部分 到判断部分进入下次循环
//        int n = 1;
//        while(n <= 5) {
//            if(n == 2) {
//                continue;//跳过本次循环后面的部分 到判断部分 再次进行循环
//            }
//            System.out.println(n);// 1 死循环
//            n++;
//        }

        //break 终止循环
//        int n = 1;
//        while(n <= 5) {
//            if(n == 2){
//                break;//终止循环
//            }
//            System.out.println(n);
//            n++;
//        }
        //100~200之间第一个被3整除的数字
//        int i = 100;
//        while(i <= 200) {
//            if(i%3 == 0) {
//                System.out.println(i);//102
//                break;
//            }
//            i++;
//        }

        //计算1！+2！+3！+4！+5！
//        int i = 1;
//        int sum = 0;
//        while(i <= 5) {
//           int n = 1;
//           int ret = 1;
//           while(n <= i) {
//               ret = ret * n;
//               n++;
//           }
//           sum = sum + ret;
//           i++;
//        }
//        System.out.println(sum);

        //计算5的阶乘
//        int n = 1;
//        int ret = 1;
//        while(n <= 5) {
//            ret = ret * n;
//            n++;
//        }
//        System.out.println(ret);



        //计算1~100的和
//        int num = 0;
//        int i = 1;
//        while(i <= 100) {
//            num += i;
//            i++;
//        }
//        System.out.println(num);


        //打印1~10
//        int i = 1;
//        while(i <= 10) {
//            System.out.println(i);
//            i++;
//        }


    }
    public static void main1(String[] args) {



//        int a = 1;
//        //float 和 double  和 long不能作为switch的参数  switch里面可以嵌套一个switch  布尔类型不可以
         //switch的用法 和C语言的一样
//        switch (a) {
//            case 1:
//                System.out.println("1");
//                break;
//            case 2:
//                System.out.println("2");
//                break;
//            default:
//                break;
//
//        }

//        String str = "hello";
//        //字符串也可以作为switch的参数
//        switch (str) {
//            case "abc":
//                System.out.println("1");
//                break;
//            case "hello":
//                System.out.println("2");
//                break;
//            default:
//                break;
//
//        }



        //判断一个年是否为闰年

//        int year = 0;
//        for(year = 1000; year <= 2000; year++) {
//            if(year % 100 == 0) {
//                if(year % 400 == 0) {
//                    System.out.println(year+":是闰年");//拼接
//                }
//            }else {
//                if(year % 4 == 0) {
//                    System.out.println(year+":是闰年");
//                }
//            }
//        }
//悬垂else  else会和最近的一个if进行匹配


//        System.out.println("hello");//顺序结构
//        System.out.println("dad");
//        System.out.println("pop");

        //选择结构
//        int age = 20;
//        if(age >= 18) {
//            System.out.println("成年");
//        }else {
//            System.out.println("未成年");
//        }

        //判断一个数是否为偶数
//        int num = 10;
//        if(num % 2 == 0){
//            System.out.println("偶数");
//        }else {
//            System.out.println("奇数");
//        }









    }
}
